Object oriented data and metadata based search

ABSTRACT

An object oriented search mechanism extracts structural metadata and data based on type of document contents and data sources connected to the documents. Relationships between textual and non-textual elements within documents as well as metadata associated with the elements and data sources are utilized to generate a unified object model with the addition of semantic information derived from metadata and taxonomy, which are used to enhance search indexing, ranking of search results, and dynamic adjustment of result rendering user interface with fine tuned relevancy. Additional data from data sources connected to the documents may also be used to unlock hidden data such as data that has been filtered out in an original document.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/724,764 filed on Mar. 16, 2010 and patented as U.S. Pat. No.8,473,473 by the same inventors, commonly assigned herewith.

BACKGROUND

Search engines discover and store information about documents such asweb pages, which they typically retrieve from the textual content of thedocuments. The documents are sometimes retrieved by a crawler or anautomated browser, which may follow links in a document or on a website.Conventional crawlers typically analyze documents as flat text filesexamining words and their positions (e.g. titles, headings, or specialfields). Data about analyzed documents may be stored in an indexdatabase for use in later queries. A query may include a single word ora combination of words.

Usefulness of a search engine depends on the relevance of the result setit returns. While there may be a large number of documents that includea particular word or phrase, some pages may be more relevant, popular,or authoritative than others. Thus, many search engines employ a varietyof methods to rank the results. Some search engines utilize predefinedand/or hierarchically ordered keywords that have been pre-programmed.Other search engines generate the index by analyzing located textsautomatically.

Traditional search engines such as the ones discussed above retrievedocument contents and index them as plain text. Different types ofdocuments are typically treated as a collection of plain text. Thus,relationships between metadata/data defined in the document as well asnon-textual object related data are lost during crawl time. This loss ofinformation, especially for documents that define structureddata/metadata, prevents filtering and/or display of search results basedon data/metadata structure.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to exclusively identify keyfeatures or essential features of the claimed subject matter, nor is itintended as an aid in determining the scope of the claimed subjectmatter.

Embodiments are directed to object oriented search, which extractsstructural metadata and data based on type of document contents and datasources connected to the documents. According to some embodiments,relationships between textual and non-textual elements within documentsas well as metadata associated with the elements and data sources may beutilized through a unified object model for search indexing and rankingof search results.

These and other features and advantages will be apparent from a readingof the following detailed description and a review of the associateddrawings. It is to be understood that both the foregoing generaldescription and the following detailed description are explanatory anddo not restrict aspects as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a conceptual diagram illustrating user role based searchoperations in a networked search environment;

FIG. 2 is a conceptual diagram illustrating object oriented search;

FIG. 3 is another conceptual diagram illustrating object oriented searchtaking into account relationships between elements in a document;

FIG. 4 illustrates an example object oriented search employing filteringparameters in a spreadsheet document according to embodiments;

FIG. 5 is a networked environment, where a system according toembodiments may be implemented;

FIG. 6 is a block diagram of an example computing operating environment,where embodiments may be implemented; and

FIG. 7 illustrates a logic flow diagram for a process of performingobject oriented and metadata based search according to embodiments.

DETAILED DESCRIPTION

As briefly described above, structural metadata and data may beextracted based on type of document contents and data sources connectedto the documents. Relationships between textual and non-textual elementswithin documents as well as metadata associated with the elements anddata sources may be utilized through a unified object model for searchindexing and ranking of search results. Furthermore, therelationship/metadata information may be returned to a rendering clientfor enhancing a user interface layout and/or style and dynamically drivevariations in result content display. Moreover, semantic information/keywords for various parts of documents may be identified using themetadata extracted and a configurable taxonomy (classification ofmetadata and/or relationships between elements). In the followingdetailed description, references are made to the accompanying drawingsthat form a part hereof, and in which are shown by way of illustrationsspecific embodiments or examples. These aspects may be combined, otheraspects may be utilized, and structural changes may be made withoutdeparting from the spirit or scope of the present disclosure. Thefollowing detailed description is therefore not to be taken in alimiting sense, and the scope of the present invention is defined by theappended claims and their equivalents.

While the embodiments will be described in the general context ofprogram modules that execute in conjunction with an application programthat runs on an operating system on a personal computer, those skilledin the art will recognize that aspects may also be implemented incombination with other program modules.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Moreover, those skilled inthe art will appreciate that embodiments may be practiced with othercomputer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and comparablecomputing devices. Embodiments may also be practiced in distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices.

Embodiments may be implemented as a computer-implemented process(method), a computing system, or as an article of manufacture, such as acomputer program product or computer readable media. The computerprogram product may be a computer storage medium readable by a computersystem and encoding a computer program that comprises instructions forcausing a computer or computing system to perform example process(es).The computer-readable storage medium can for example be implemented viaone or more of a volatile computer memory, a non-volatile memory, a harddrive, a flash drive, a floppy disk, or a compact disk, and comparablemedia.

Throughout this specification, the term “platform” may be a combinationof software and hardware components for managing computer and networkoperations, which may include searches. Examples of platforms include,but are not limited to, a hosted service executed over a plurality ofservers, an application executed on a single server, and comparablesystems. The term “server” generally refers to a computing deviceexecuting one or more software programs typically in a networkedenvironment. However, a server may also be implemented as a virtualserver (software programs) executed on one or more computing devicesviewed as a server on the network. More detail on these technologies andexample operations is provided below.

FIG. 1 includes conceptual diagram 100 illustrating user role basedsearch operations in a networked search environment. The networkedsearch environment shown in diagram 100 is for illustration purposes.Embodiments may be implemented in various networked environments such asenterprise-based networks, cloud-based networks, and combinations ofthose.

Search engines employ a variety of methods to rank the results or indexthem based on relevance, popularity, or authoritativeness of documentscompared to others. Indexing also allows users to find soughtinformation promptly. When a user submits a query to a search engine(e.g. by using key words), the search engine may examine its index andprovide a listing of matching results according to predefined criteria.The index may be built from the information retrieved from the contentsof the crawled document and/or user data and the method by which theinformation is indexed. The query may include parameters such as Booleanoperators (e.g. AND, OR, NOT, etc.) that allow the user to refine andextend the terms of the search.

A search engine according to embodiments enables enhanced indexing byconsidering internal element structure and relationships betweenelements in a crawled document (and crawling the elements themselves),and by further considering additional data retrieved from data sourcesassociated with crawled documents and/or elements. A unified objectmodel based on the element relationships and metadata may be used to seta scope and/or filters for the query. Furthermore, the elementstructure, external data source, and metadata information may further beused in search result ranking before rendering and for enhancing a userinterface layout and/or style and dynamically drive variations in resultcontent display at the rendering client. Moreover, semanticinformation/key words for various parts of documents may be identifiedusing the metadata extracted and a configurable taxonomy (classificationof metadata and/or relationships between elements). The informationextracted, organized, ranked, and annotated may be indexed and storedfor caching and faster retrieval when searched by a user.

User 102 may interact with a variety of networked services through theirclient 104. Client 104 may refer to a computing device executing one ormore applications, an application executed on one or more computingdevices, or a service executed in a distributed manner and accessed byuser 102 through a computing device. In a typical system client 104 maycommunicate with one or more servers (e.g., server 112). Server 112 mayexecute search operations for user 102 searching documents on server 112itself, other clients 106, data stores 108, other servers of network114, or resources outside network 110.

In an example scenario, network 110 may represent an enterprise network,where user 102 may submit a search request. A search application onserver 112 may perform object oriented crawl and evaluate documentsbased on their internal element structure and relationships, as well asassociated metadata. The crawled documents and retrieved information maybe indexed with additional information from data sources associated withcrawled documents. The specialized information may also be organizedinto a unified object model to support scoping of search query (ies) andenhancing of result ranking. The search may also include resourcesoutside network 110 such as server 116 or servers 122 and data stores120, which may be accessed through at least one other network 118.

The example system in FIG. 1 has been described with specific servers,client devices, software modules, and interactions. Embodiments are notlimited to systems according to these example configurations. An objectoriented search system may be implemented in configurations employingfewer or additional components and performing other tasks. Furthermore,specific protocols and/or interfaces may be implemented in a similarmanner using the principles described herein.

FIG. 2 includes diagram 200 illustrating object oriented search. Searchengines crawl documents on client devices, servers, data sources, etc. Asearch engine according to embodiments (e.g. search engine 238) may finddocuments that include textual data, graphic data, video data, tables,images, and similar forms of embedded content.

Document 226 is an example document with textual data 228, graphic chart230, table 234, image 232, and video data 236. Some or all of theembedded elements (charts, images, video data, tables) may present datadynamically. Thus, the contents may receive data dynamically from anexternal data source (e.g. data sources 224) and present the data, whilethe data is not physically stored along with the document 226 itself. Aconventional flat text search may not detect the dynamic datarepresented by any of these elements.

Search engine 238 not only searches data represented by the non-textualelements, but may also determine types of elements, relationshipsbetween the elements, and may retrieve relevant data from data sources224. Search engine 238 may then index crawl results for faster searchresponses building index 240. The search engine may also rank searchresults based on the types of elements, relationships between elements,and the retrieved external data, and enable presentation of theadditional information when search results are rendered by renderingapplication(s) 242 such that users can determine importance/relevance ofa document for their search. Search engine 238 may also providestructural information and relationship between elements for a searchclient (rendering application(s) 242) to drive its user interface andresult display dynamically.

FIG. 3 is another conceptual diagram illustrating object oriented searchtaking into account relationships between elements in a document.According to one example scenario, a search engine such as search engine338 of diagram 300 for enterprise clients may attempt to limit a scopeof the search results to business intelligence documents such asspreadsheet documents that contains tables, charts, reports, diagrams,filtered charts/tables, and similar elements. Some of these elements maybe generated by an application other than the spreadsheet applicationassociated with the spreadsheet document and embedded into thespreadsheet document statically or dynamically (i.e. element dataresiding at an external source). Example document 336 includes textualreport 344, table 346, chart 348, and video data (presentation) 350.Textual report 344 includes links to the individual non-textualelements. Furthermore, table 346 and chart 348 may be associated (e.g.part of the data in table 346 may be displayed in chart 348). Otherrelationships are also possible.

The search engine 338 may extract metadata structural information andcreate an object model that contains the details of the businessintelligence related information. For example, a spreadsheet documentmay include multiple sheets filtering tables. Each filtering table mayinclude a variety of filters. The spreadsheet document may furtherinclude diagrams and/or charts based on data that is stored in thespreadsheet document and/or stored at an external resource (e.g. anotherspreadsheet document, a data store, etc.). The charts and/or diagramsmay be generated based on filtering the data according to one or more ofthe filters in the filtering table. Thus, the elements in thespreadsheet document may not reflect the entire extent of availabledata. Moreover, relationships between the elements (e.g. between thetables and charts, video data and tables, etc.) may be useful to a userin determining the importance or relevance of retrieved data and drivinga search client user interface and result display dynamically.

Because the data in the spreadsheet document may be limited (e.g.filtered from the available data at the external data source), searchengine 338 may retrieve additional information from the data source toenrich the search results. For example, additional dimension membersbeside the applied filter members may be retrieved from the data at thedata source. Dimensions, hierarchies, and measure information of storeddata may also be retrieved. Thus, detailed metadata and data may beretrieved in a structural and meaningful manner and used to scope thesearch results into business intelligence related documents anddynamically drive variations in result content display of a renderingapplication.

Since external data may be stored in different data sources such asvarious databases, servers, tables, and comparable ones, the metadataassociated with each data and data storage may be different. Searchengine 338 may determine data type associated with each discoveredelement within a document, range of data, and data storage type. Then,crawl operations may be customized to retrieve information associatedwith each element and data for each element.

As mentioned previously, a unified object model may be utilized toorganize different kinds of metadata and data into more generic objects.The unified object model may be implemented as part of a businessintelligence abstraction layer according to some embodiments. A userinterface of a rendering application (or the search engine) may beadjusted in accordance with the indexing and ranking strategy, such thatsearch results for different kinds of documents and document elementsmay be displayed in a unified and consistent manner. For example, datamay be categorized as being associated with a chart, a table, a video,and comparable ones, and search results may indicate each result'scategory textually and/or graphically.

FIG. 4 illustrates an example object oriented search employing filteringparameters in a spreadsheet document according to embodiments. Diagram400 shows spreadsheet document 460, which includes financial data for acompany. The financial data is displayed in three categories: NorthAmerican Sales data 454, forecast data 456, and profit data 458. Atleast some of the data may be dynamically linked to an external datasource 452. Thus, the externally linked data is stored and maintained(e.g. updated regularly) at the data source 452 and not stored as partof spreadsheet document 460. Part all of the displayed data may be as aresult filtering. For example, data source 452 may store worldwide salesdata for the company. Spreadsheet document 460 displays a portion ofthat data filtered geographically (North America). The filtering isindicated in the diagram by the triangular icon for illustrationpurposes.

A search engine according to embodiments, may determine a range ofavailable data (e.g. worldwide sales) based on metadata associated withspreadsheet document 460, and render all of the sales data from datasource 452 available. According to other embodiments, the search enginemay determine a user's interests based on their profile or requestedsearch terms and render another portion of the sales data available. Forexample, a sales person in Asia may be searching for sales data and thesearch engine may indicate in the search results that sales data forAsia is available from data source 452 in the format used by spreadsheetdocument 460 based on the metadata retrieved from spreadsheet document460 (despite the spreadsheet not displaying Asia sales data).

The examples in FIGS. 2, 3, and 4 have been described with specificdocument types, objects, data types, and interactions. Embodiments arenot limited to systems according to these example configurations. Objectoriented search may be implemented in configurations using other typesof documents, objects, and data in a similar manner using the principlesdescribed herein.

FIG. 5 is an example networked environment, where embodiments may beimplemented. A platform providing object oriented searches may beimplemented via software executed over one or more servers 514 such as ahosted service. The platform may communicate with client applications onindividual computing devices such as a smart phone 513, a laptopcomputer 512, or desktop computer 511 (‘client devices’) throughnetwork(s) 510.

As discussed above, client applications executed on any of the clientdevices 511-513 may submit a search request to a search engine on theclient device 511-513, on the servers 514, or on individual server 516.The search engine may crawl elements and relationships between elementswithin documents, retrieve data from data sources associated withcrawled documents and elements, and index and rank based on collectedinformation employing a unified object model as discussed previously.The service may retrieve relevant data from data store(s) 519 directlyor through database server 518, and provide the ranked search results tothe user(s) through client devices 511-513. The service may furtherprovide filtering/scoping of results by the unified object model (e.g.search for “sales data” only occurring in form of tables or charts).

Network(s) 510 may comprise any topology of servers, clients, Internetservice providers, and communication media. A system according toembodiments may have a static or dynamic topology. Network(s) 510 mayinclude secure networks such as an enterprise network, an unsecurenetwork such as a wireless open network, or the Internet. Network(s) 510may also coordinate communication over other networks such as PublicSwitched Telephone Network (PSTN) or cellular networks. Furthermore,network(s) 510 may include short range wireless networks such asBluetooth or similar ones. Network(s) 510 provide communication betweenthe nodes described herein. By way of example, and not limitation,network(s) 510 may include wireless media such as acoustic, RF, infraredand other wireless media.

Many other configurations of computing devices, applications, datasources, and data distribution systems may be employed to implement aframework for object oriented search. Furthermore, the networkedenvironments discussed in FIG. 5 are for illustration purposes only.Embodiments are not limited to the example applications, modules, orprocesses.

FIG. 6 and the associated discussion are intended to provide a brief,general description of a suitable computing environment in whichembodiments may be implemented. With reference to FIG. 6, a blockdiagram of an example computing operating environment for an applicationaccording to embodiments is illustrated, such as computing device 600.In a basic configuration, computing device 600 may be a client deviceexecuting a client application capable of performing searches or aserver executing a service capable of performing searches according toembodiments and include at least one processing unit 602 and systemmemory 604. Computing device 600 may also include a plurality ofprocessing units that cooperate in executing programs. Depending on theexact configuration and type of computing device, the system memory 604may be volatile (such as RAM), non-volatile (such as ROM, flash memory,etc.) or some combination of the two. System memory 604 typicallyincludes an operating system 605 suitable for controlling the operationof the platform, such as the WINDOWS® operating systems from MICROSOFTCORPORATION of Redmond, Wash. The system memory 604 may also include oneor more software applications such as program modules 606, searchcapable application 622, search engine 624, and optionally otherapplications/data 626.

Application 622 may be any application that is capable of performingsearch through search engine 624 on other applications/data 626 incomputing device 600 and/or on various kinds of data available in anenterprise-based or cloud-based networked environment. Search engine 624may perform searches, index, and rank results taking elements, elementrelationships, and data from associated data sources as discussedpreviously. Search engine 624 according to embodiments may generatesearch results by listing data available from documents, embeddedelements, and external data sources associated with the documents andembedded elements. The elements may be embedded into the documentspartially based on external data dynamically provided to the documentsfrom a database, another document, or similar sources. Moreover, therendered search results may include an indication of result type foreach search result, where the result type may include a documentdescription, an embedded element description, or an external data sourcedescription. Application 622 and search engine 624 may be separateapplications or an integral component of a hosted service. This basicconfiguration is illustrated in FIG. 6 by those components within dashedline 608.

Computing device 600 may have additional features or functionality. Forexample, the computing device 600 may also include additional datastorage devices (removable and/or non-removable) such as, for example,magnetic disks, optical disks, or tape. Such additional storage isillustrated in FIG. 6 by removable storage 609 and non-removable storage610. Computer readable storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, program modules, or other data. Systemmemory 604, removable storage 609 and non-removable storage 610 are allexamples of computer readable storage media. Computer readable storagemedia includes, but is not limited to, RAM, ROM, EEPROM, flash memory orother memory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by computing device 600.Any such computer readable storage media may be part of computing device600. Computing device 600 may also have input device(s) 612 such askeyboard, mouse, pen, voice input device, touch input device, andcomparable input devices. Output device(s) 614 such as a display,speakers, printer, and other types of output devices may also beincluded. These devices are well known in the art and need not bediscussed at length here.

Computing device 600 may also contain communication connections 616 thatallow the device to communicate with other devices 618, such as over awired or wireless network in a distributed computing environment, asatellite link, a cellular link, a short range network, and comparablemechanisms. Other devices 618 may include computer device(s) thatexecute communication applications, other web servers, and comparabledevices. Communication connection(s) 616 is one example of communicationmedia. Communication media can include therein computer readableinstructions, data structures, program modules, or other data. By way ofexample, and not limitation, communication media includes wired mediasuch as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared and other wireless media.

Example embodiments also include methods. These methods can beimplemented in any number of ways, including the structures described inthis document. One such way is by machine operations, of devices of thetype described in this document.

Another optional way is for one or more of the individual operations ofthe methods to be performed in conjunction with one or more humanoperators performing some. These human operators need not be collocatedwith each other, but each can be only with a machine that performs aportion of the program.

FIG. 7 illustrates a logic flow diagram for process 700 of performingobject oriented and metadata based search according to embodiments.Process 700 may be implemented as part of an application executed on aserver or client device.

Process 700 begins with operation 710, where search contents are crawledfor indexing purposes. As discussed previously searches may be performedin a desktop environment, an enterprise-based network, a cloud-basednetwork, or a combination of an enterprise-based network and acloud-based network. At operation 720, elements within documents in thesearch range are determined during crawl time. The elements may includeany textual and non-textual elements such as tables, charts, video data,and comparable ones. The elements found in the document(s) and theirrelationships may be analyzed at operation 730. For example, charts andtables may be based on same data. Such relationships may assist the userto determine relevance and/or importance of a document for their search.

At operation 740, metadata associated with the document and the objectsmay be analyzed. Some elements in the document(s) may rely on dataexternally provided from a data source. Metadata may identify such datasources and type of data, range of data, etc. Operation 740 may befollowed by operation 750, where the analysis results are organized intoa unified object model for defining indexing strategy and rankingresults to be rendered to the user. For example, the elements may becategorized according to their type, and a source of data and a type ofelement associated with each element indicated in rendered searchresults.

A process according to embodiments may include caching an index forsubsequent use in rapid rendering of search results. At operation 760,the analysis results may be published/stored into the cached index,which may be used in rendering search results by the search engine or arendering application at optional operation 770. The source of data andthe type of element may be indicated in the search results employing agraphical scheme and/or a textual scheme.

The operations included in process 700 are for illustration purposes.Object oriented and metadata based search may be implemented by similarprocesses with fewer or additional steps, as well as in different orderof operations using the principles described herein.

The above specification, examples and data provide a completedescription of the manufacture and use of the composition of theembodiments. Although the subject matter has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims and embodiments.

What is claimed is:
 1. A method to be executed at least in part in acomputing device for performing object oriented searches, the methodcomprising: determining textual and non-textual elements within searchresults of a document from the object oriented searches executed on thedocument, wherein at least some of the non-textual elements includeexternal data received dynamically from an external data source;analyzing structural relationships between the textual and thenon-textual elements; analyzing metadata associated with the textual andthe non-textual elements to classify the metadata and the structuralrelationships in a configurable taxonomy; organizing analysis results ofthe structural relationships between the textual and the non-textualelements associated with the document into a unified object model; andutilizing the unified object model to: set a scope and one or morefilters for a search query to retrieve additional information from theexternal data by crawl operations; identify semantic information fromthe metadata using the configurable taxonomy; index and rank theanalysis results by using one or more structures of the textual and thenon-textual elements, the external data source, and the semanticinformation before rendering the analysis results at a user interface ofa client device; and transmit the analysis results to the user interfaceof the client device to enhance a user interface layout and a style ofthe user interface of the client device and to dynamically drivevariations in the analysis results to be displayed at the user interfaceof the client device.
 2. The method of claim 1, further comprising:utilizing the unified object model to organize the metadata associatedwith the textual and the non-textual elements into generic objects. 3.The method of claim 1, further comprising: retrieving the additionalinformation from the external data by crawl operations executed duringone or more of the object oriented searches that utilize the searchquery to enrich the document using the one or more of filters that areapplied to the external data, dimensions of the external data,hierarchies of the external data, and measure information associatedwith the external data.
 4. The method of claim 3, further comprising: inresponse to a determination that the textual and the non-textualelements include less than an entirety of the received external datafrom the external data source, utilizing the structural relationshipsbetween the textual and the non-textual elements to analyze relevance ofthe received external data.
 5. The method of claim 1, furthercomprising: building an index from the structural relationships betweenthe textual and the non-textual elements and the additional informationretrieved from the external data; and storing the analysis results intothe index.
 6. The method of claim 5, further comprising: creating acache from the index to provide access to the document by one or more ofa search engine and a rendering application.
 7. The method of claim 1,further comprising: implementing the unified object model as part of abusiness intelligence abstraction layer of a business application,wherein the business application is configured to perform objectoriented searches and to provide the textual and the non-textualelements of the document.
 8. A computing device for facilitating objectoriented searches, the computing device comprising: a memory configuredto store instructions; and a hardware processor configured to execute anapplication in conjunction with instructions stored in the memory toperform object oriented searches and evaluate a document based onstructural relationships associated with the document, wherein theapplication is configured to: determine textual and non-textual elementswithin search results of the document from the object oriented searchesexecuted on the document, wherein at least some of the non-textualelements include external data received dynamically from an externaldata source; analyze structural relationships between the textual andthe non-textual elements, wherein the non-textual elements include oneor more of graphic data, an image, a video element, a chart, and adiagram; analyze metadata associated with the textual and thenon-textual elements to classify the metadata and the structuralrelationships in a configurable taxonomy; organize analysis results ofthe structural relationships between the textual and the non-textualelements associated with the document into a unified object model;utilize the unified object model to: set a scope and one or more filtersfor a search query to retrieve additional information from the externaldata by crawl operations; identify semantic information from themetadata using the configurable taxonomy; index and rank the analysisresults by using one or more structures of the textual and thenon-textual elements, the external data source, and the semanticinformation before rendering the analysis results at a user interface ofa client device; and transmit the analysis results to the user interfaceof the client device to enhance a user interface layout and a style ofthe user interface of the client device and to dynamically drivevariations in the analysis results to be displayed at the user interfaceof the client device.
 9. The computing device of claim 8, wherein theapplication is further configured to: utilize the unified object modelto organize the metadata associated with the textual and the non-textualelements into generic objects.
 10. The computing device of claim 8,wherein the application is further configured to: retrieve theadditional information from the external data by crawl operationsexecuted during one or more of the object oriented searches that utilizethe search query to enrich the document using the one or more of filtersthat are applied to the external data, dimensions of the external data,hierarchies of the external data, and measure information associatedwith the external data.
 11. The computing device of claim 8, wherein theapplication is further configured to: build an index from the structuralrelationships between the textual and the non-textual elements and theadditional information retrieved from the external data; store theanalysis results into the index; and create a cache from the index toprovide access to the document by a rendering application.
 12. Thecomputing device of claim 11, wherein the application is furtherconfigured to: index the analysis results based on the structuralrelationships between the textual and the non-textual elements.
 13. Thecomputing device of claim 12, wherein the application is furtherconfigured to: rank the index the analysis results based on one or moreof a textual type associated with the textual and the non-textualelements, the structural relationships between the textual and thenon-textual elements, relevance of the document compared to anotherdocument, and popularity of the document compared to the other document.14. The computing device of claim 8, wherein the application is furtherconfigured to: update the received external data based on interests of auser, wherein the interests of the user are determined to be based onone or more of a profile of the user and search terms associated withuser within the textual and non-textual elements of the document. 15.The computing device of claim 8, wherein the application is furtherconfigured to: implement filtering of the analysis results for a firstportion of the received external data; and transmit the first portion ofthe received external data to the user interface of the client device.16. The computing device of claim 15, wherein the application is furtherconfigured to: implement filtering of the analysis results for a secondportion of the received external data; and transmit the second portionof the received external data to the user interface of the clientdevice.
 17. A method to be executed in a computing device for performingobject oriented searches, the method comprising: determining textual andnon-textual elements within search results of a document from the objectoriented searches executed on the document, wherein at least some of thenon-textual elements include external data received dynamically from anexternal data source; analyzing structural relationships between thetextual and the non-textual elements, wherein the non-textual elementsinclude one or more of graphic data, an image, a video element, a chart,and a diagram; analyzing metadata associated with the textual and thenon-textual elements to classify the metadata and the structuralrelationships in a configurable taxonomy; organizing analysis results ofthe structural relationships between the textual and the non-textualelements associated with the document into a unified object model;utilizing the unified object model to: set a scope and one or morefilters for a search query to retrieve additional information from theexternal data by crawl operations; identify semantic information fromthe metadata using the configurable taxonomy; index and rank theanalysis results by using one or more structures of the textual and thenon-textual elements, the external data source, and the semanticinformation before rendering the analysis results at a user interface ofa client device; and organize the metadata associated with the textualand the non-textual elements into generic objects; and retrieving theadditional information from the external data by crawl operationsexecuted during one or more of the object oriented searches that utilizethe search query to enrich the document using the one or more of filtersthat are applied to the external data, dimensions of the external data,hierarchies of the external data, and measure information associatedwith the external data; building an index from the structuralrelationships and the additional information retrieved from the externaldata; storing the analysis results into the index; and transmitting theindex to the user interface of the client device to enhance a userinterface layout and a style of the user interface of the client deviceand to dynamically drive variations in the index to be displayed at theuser interface of the client device.
 18. The method of claim 17, furthercomprising: indexing the analysis results based on the structuralrelationships between the textual and the non-textual elements; andranking the indexing results based on one or more of a textual typeassociated with the textual and the non-textual elements, the structuralrelationships between the textual and the non-textual elements,relevance of the document compared to another document, and popularityof the document compared to the other document.
 19. The method of claim17, further comprising: updating the received external data based oninterests of a user, wherein the interests of the user are determined tobe based on one or more of a profile of the user and search termsassociated with user within the textual and the non-textual elements ofthe document.
 20. The method of claim 19, further comprising:implementing filtering of the analysis results for a first portion ofthe received external data; transmitting the first portion of thereceived external data to the user interface of the client device;implementing filtering of the analysis results for a second portion ofthe received external data; and transmitting the second portion of thereceived external data to the user interface of the client device.